home *** CD-ROM | disk | FTP | other *** search
/ Item MB Quick & Easy 2.0 / Item MB Quick & Easy 2.0.iso / mbfacad / 0043966.lsp < prev    next >
Text File  |  1998-03-15  |  14KB  |  349 lines

  1. ;=============439.66 KLEMM-MULTIBLOCK 6 PA
  2.  
  3.  
  4. (defun C:43966D1 (/ P1 S)
  5.    (EAITDBL "0043966")
  6.    (princ (strcat "\n\n" EAITbez1))
  7.    (EAITvari)
  8.    (EAITvars)
  9.    (setvar "ORTHOMODE" 0)
  10.    (EAITbpt EAITofnaec 512 nil)
  11.    (setq P1 (getpoint))
  12.    (if (= P1 nil)(setq P1 (EAITrpt)))
  13.    (setvar "ORTHOMODE" 1)
  14.    (setvar "OSMODE" 0)
  15.  
  16.    (initget (strcat (EAITmg "mb_mld13" "008") " " (EAITmg "mb_mld13" "009")))
  17.    (EAITmsg "mb_mld12" "\n " "021" " ")(EAITmsg "mb_mld13" nil "008" "/<")(EAITmsg "mb_mld13" nil "009" ">")
  18.                          ;Vollstaendige Darstellung der Multiblöcke ?  Ja/<Nein>
  19.    (setq s (getreal))
  20.    (if (= s nil)(setq s (EAITmg "mb_mld13" "009")))
  21.    (if (= s (EAITmg "mb_mld13" "008"))(setq s (strcat EAITpfn "43966d1"))(setq s (strcat EAITpfn "43966d2")))
  22.  
  23.    
  24.    (EAITmsg "mb_mld10" "\n" "003" nil)            ;Drehwinkel
  25.    (command EAITege S P1 "" "" EAITofkei pause)
  26.    (command EAITege (strcat EAITpfn "EAITinfo") (polar P1 (EAITbw) 6) "" "" ""
  27.                     EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  28.    )
  29.    (EAITvarz2)
  30.    (princ)
  31. );defun D1
  32.  
  33.  
  34.  
  35. (defun C:43966D2 (/ L P10 P11 W WH n LGes nx P0 s)
  36.    (EAITDBL "0043966")
  37.    (princ (strcat "\n\n" EAITbez1))
  38.    (EAITvari)
  39.    (EAITvars)
  40.  
  41.    ;Lage + Anzahl
  42.    (setq L nil)
  43.    (while (not L)
  44.       (setvar "ORTHOMODE" 0)
  45.       (EAITbpt EAITofes 33 (EAITmg "mb_mld12" "017"))  ;  1. Punkt:
  46.       (setq P10 (getpoint))
  47.       (EAITbpt EAITofes 33 (EAITmg "mb_mld12" "018"))  ;  2. Punkt:
  48.       (setq P11 (getpoint P10))
  49.       (setvar "ORTHOMODE" 0)
  50.       (setvar "OSMODE" 0)
  51.       (setq W  (angle P10 P11)
  52.             WH (+ (EAITbig W) 90) )
  53.  
  54.       (initget 6 "?")
  55.       (EAITmsg "mb_mld12" "\n" "019" " ")  ;Anzahl der Multibloecke (2,3,...,?): <?>
  56.       (setq n (getint))
  57.       (setq LGes (distance P10 P11))
  58.       (cond ((or (= n nil)(= n "?")) (setq n (+ 2 (fix (/ (- LGes 150) 500)))) )
  59.             ((= n 1)                 (setq n 2))
  60.       )
  61.       (setq L  (/ (- LGes 150) (float (- n 1))))
  62.       (if (< L EAITlmin)(progn (setq L nil) (EAITmsg "mb_mld12" "\n" "006" " ")(princ EAITlmin)(EAITmsg "mb_mld13" nil "006" nil)(EAITmsg "mb_mld12" " " "020" "\n")))
  63.                                ;Ungültige Eingabe: es werden min. EAITlmin mm je Multiblock benötigt!
  64.    )
  65.  
  66.    (initget (strcat (EAITmg "mb_mld13" "008") " " (EAITmg "mb_mld13" "009")))
  67.    (EAITmsg "mb_mld12" "\n " "021" " ")(EAITmsg "mb_mld13" nil "008" "/<")(EAITmsg "mb_mld13" nil "009" ">")
  68.                          ;Vollstaendige Darstellung der Multiblöcke ?  Ja/<Nein>
  69.    (setq s (getreal))
  70.    (if (= s nil)(setq s (EAITmg "mb_mld13" "009")))
  71.    (if (= s (EAITmg "mb_mld13" "008"))(setq s (strcat EAITpfn "43966d1"))(setq s (strcat EAITpfn "43966d2")))
  72.  
  73.    ;1. Einfügen
  74.    (setq P0 (polar P10 W (- 75 L)) )
  75.    (repeat n
  76.       (setq P0 (polar P0 W L))
  77.       (command EAITege s P0 "" "" WH)
  78.       (command EAITege (strcat EAITpfn "EAITinfo") (polar P0 (EAITbw) 6) "" "" ""
  79.                        EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  80.       )
  81.    )
  82.  
  83.    (EAITvarz2)
  84.    (princ)
  85. );defun D2
  86.  
  87.  
  88.  
  89.  
  90.  
  91. (defun C:43966VH (/ S Y P1 Wi Wix GName SName WH)
  92.    (EAITDBL "0043966")
  93.    (princ (strcat "\n\n" EAITbez1))
  94.    (EAITvari)
  95.    (EAITvars)
  96.    (setq S nil)
  97.    (while (not S)
  98.       (if (not kmblck)(setq kmblck 8))
  99.       (princ (strcat "\n" (EAITmg "mb_mld12" "022")" (0 - 8) <"))(princ kmblck)(princ "> : ")    ;Spannstaerke S (0 - 5) < kmblck >:
  100.       (initget 6)
  101.       (setq S (getreal))
  102.       (if (= S nil)(setq S kmblck) )
  103.       (cond ((<= S 4)(setq Y  5))
  104.             ((<= S 8)(setq Y 12))
  105.             (T         (setq S nil))
  106.       )
  107.    )
  108.    (setq kmblck S)
  109.    (setvar "ORTHOMODE" 1)
  110.    (EAITbpt EAITofpun 8 nil)
  111.    (setq P1 (getpoint))
  112.    (if (= P1 nil)(setq P1 (EAITrpt)))
  113.    (setvar "ORTHOMODE" 0)
  114.    (setvar "OSMODE" 0)
  115.    (initget 1)
  116.    (EAITmsg "mb_mld10" "\n" "008" nil)           ;Konstruktionsrichtung
  117.    (setq Wi (getangle P1)
  118.          Wix (EAITbig Wi))
  119.    (cond ((and (>= Wix   0)(< Wix  90)) (if (= Y 5)(setq WH   0 GName (strcat EAITpfn "43966V1") SName (strcat EAITpfn "43966_1"))(setq WH   0 GName (strcat EAITpfn "43966V3") SName (strcat EAITpfn "43966_3"))) )
  120.          ((and (>= Wix  90)(< Wix 180)) (if (= Y 5)(setq WH   0 GName (strcat EAITpfn "43966V2") SName (strcat EAITpfn "43966_2"))(setq WH   0 GName (strcat EAITpfn "43966V4") SName (strcat EAITpfn "43966_4"))) )
  121.          ((and (>= Wix 180)(< Wix 270)) (if (= Y 5)(setq WH 180 GName (strcat EAITpfn "43966V1") SName (strcat EAITpfn "43966_1"))(setq WH 180 GName (strcat EAITpfn "43966V3") SName (strcat EAITpfn "43966_3"))) )
  122.          (T                             (if (= Y 5)(setq WH 180 GName (strcat EAITpfn "43966V2") SName (strcat EAITpfn "43966_2"))(setq WH 180 GName (strcat EAITpfn "43966V4") SName (strcat EAITpfn "43966_4"))) )       
  123.    )
  124.    (if (and (>= Wix   90)(< Wix  270))(setq Wx 180)(setq Wx 0))
  125.  
  126.    (command EAITege GName P1 "" "" WH
  127.             EAITege SName (polar P1 (EAITgib (+ WH 90)) kmblck) "" "" WH)
  128.    (command EAITege (strcat EAITpfn "EAITinfo") (polar P1 (EAITgib Wx) 10) "" "" ""
  129.                     EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  130.    )
  131.    (EAITvarz2)
  132.    (princ)
  133. );defun VH
  134.  
  135.  
  136.  
  137.  
  138.  
  139. (defun C:43966VV (/ S Y P1 Wi Wix GName SName WH)
  140.    (EAITDBL "0043966")
  141.    (princ (strcat "\n\n" EAITbez1))
  142.    (EAITvari)
  143.    (EAITvars)
  144.    (setq S nil)
  145.    (while (not S)
  146.       (if (not kmblck)(setq kmblck 8))
  147.       (princ (strcat "\n" (EAITmg "mb_mld12" "022")" (0 - 8) <"))(princ kmblck)(princ "> : ")    ;Spannstaerke S (0 - 5) < kmblck >:
  148.       (initget 6)
  149.       (setq S (getreal))
  150.       (if (= S nil)(setq S kmblck) )
  151.       (cond ((<= S 4)(setq Y  5))
  152.             ((<= S 8)(setq Y 12))
  153.             (T         (setq S nil))
  154.      )
  155.    )
  156.    (setq kmblck S)
  157.    (setvar "ORTHOMODE" 1)
  158.    (EAITbpt EAITofpun 8 nil)
  159.    (setq P1 (getpoint))
  160.    (if (= P1 nil)(setq P1 (EAITrpt)))
  161.    (setvar "ORTHOMODE" 0)
  162.    (setvar "OSMODE" 0)
  163.    (initget 1)
  164.    (EAITmsg "mb_mld10" "\n" "008" nil)           ;Konstruktionsrichtung
  165.    (setq Wi (getangle P1)
  166.          Wix (EAITbig Wi))
  167.    (cond ((and (>= Wix   0)(< Wix  90)) (if (= Y 5)(setq WH 270 GName (strcat EAITpfn "43966V2") SName (strcat EAITpfn "43966_2"))(setq WH 270 GName (strcat EAITpfn "43966V4") SName (strcat EAITpfn "43966_4"))) )
  168.          ((and (>= Wix  90)(< Wix 180)) (if (= Y 5)(setq WH  90 GName (strcat EAITpfn "43966V1") SName (strcat EAITpfn "43966_1"))(setq WH  90 GName (strcat EAITpfn "43966V3") SName (strcat EAITpfn "43966_3"))) )
  169.          ((and (>= Wix 180)(< Wix 270)) (if (= Y 5)(setq WH  90 GName (strcat EAITpfn "43966V2") SName (strcat EAITpfn "43966_2"))(setq WH  90 GName (strcat EAITpfn "43966V4") SName (strcat EAITpfn "43966_4"))) )
  170.          (T                             (if (= Y 5)(setq WH 270 GName (strcat EAITpfn "43966V1") SName (strcat EAITpfn "43966_1"))(setq WH 270 GName (strcat EAITpfn "43966V3") SName (strcat EAITpfn "43966_3"))) )
  171.    )
  172.    (if (and (>= Wix   0)(< Wix  180)) (setq Wx 90)(setq Wx 270))
  173.  
  174.    (command EAITege GName P1 "" "" WH
  175.             EAITege SName (polar P1 (EAITgib (+ WH 90)) kmblck) "" "" WH)
  176.    (command EAITege (strcat EAITpfn "EAITinfo") (polar P1 (EAITgib Wx) 10) "" "" ""
  177.                     EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  178.    )
  179.    (EAITvarz2)
  180.    (princ)
  181. );defun VV
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188. (defun C:43966s1 (/ S GName SName L P20 P21 NL P P0 P1 P10 P11 P12 P13 W WHg WVg WHb WVb
  189.                     n LGes nx dist L1)
  190.    (EAITDBL "0043966")
  191.    (princ (strcat "\n\n" EAITbez1))
  192.    (EAITvari)
  193.    (EAITvars)
  194.    (setq S nil)
  195.    (while (not S)
  196.       (if (not kmblck)(setq kmblck 8))
  197.       (princ (strcat "\n" (EAITmg "mb_mld12" "022")" (0 - 8) <"))(princ kmblck)(princ "> : ")    ;Spannstaerke S (0 - 5) < kmblck >:
  198.       (initget 6)
  199.       (setq S (getreal))
  200.       (if (= S nil)(setq S kmblck) )
  201.       (cond ((<= S 4)(setq GName (strcat EAITpfn "43966s1") SName (strcat EAITpfn "43966_5") kmblck S S (+ S 8) ))
  202.             ((<= S 8)(setq GName (strcat EAITpfn "43966s2") SName (strcat EAITpfn "43966_5") kmblck S S (+ S 4) ))
  203.             (T         (setq S nil))
  204.      )
  205.    )
  206.  
  207.    ;Lage + Anzahl
  208.    (setq L nil)
  209.    (while (not L)
  210.        (setvar "ORTHOMODE" 0)
  211.        (EAITbpt EAITofes 33 (EAITmg "mb_mld12" "017"))  ;  1. Punkt:
  212.        (setq P20 (getpoint))
  213.        (EAITbpt EAITofes 33 (EAITmg "mb_mld12" "018"))  ;  2. Punkt:
  214.        (setq P21 (getpoint P20))
  215.  
  216.        (setvar "ORTHOMODE" 0)
  217.        (setvar "OSMODE" 512)
  218.        (EAITmsg "mb_mld12" "\n  " "015" ": ")  ;1. Nutlinie:
  219.        (setq NL (entsel " ")
  220.              P0 (cadr NL))
  221.        (setvar "OSMODE" 128)
  222.        (EAITmsg "mb_mld12" "\n  " "016" ": ")  ;2. Nutlinie:
  223.        (setq P1 (getpoint P0))
  224.        (setvar "ORTHOMODE" 0)
  225.        (setvar "OSMODE" 0)
  226.        (setvar "APERTURE" 4)
  227.        (setq P10 (osnap P0 EAITofend)
  228.              P11 (osnap P1 EAITofend)
  229.              P12 (osnap P0 EAITofmit)
  230.              P13 (osnap P1 EAITofmit)
  231.              P1  (mapcar '/ (mapcar '+ P12 P13) '(2 2 2))
  232.              W   (angle P20 P1)
  233.              WHb (angle P20 P21)
  234.              WVb (- WHb (/ Pi 2))
  235.              dist(distance P20 P1)
  236.              L1  (* dist (sin (- WHb W)))
  237.              P1  (polar P20 WVb L1)
  238.              WHg (EAITbig WHb)
  239.              WVg (EAITbig WVb)
  240.        )
  241.       (initget 6 "?")
  242.       (EAITmsg "mb_mld12" "\n" "019" " ")  ;Anzahl der Multibloecke (2,3,...,?): <?>
  243.       (setq n (getint)
  244.             LGes (distance P20 P21) )
  245.       (cond ((or (= n nil)(= n "?")) (setq n (+ 2 (fix (/ (- LGes 150) 500)))) )
  246.             ((= n 1)                 (setq n 2))
  247.       )
  248.       (setq L  (/ (- LGes 150) (float (- n 1))))
  249.       (if (< L EAITlmin)(progn (setq L nil) (EAITmsg "mb_mld12" "\n" "006" " ")(princ EAITlmin)(EAITmsg "mb_mld13" nil "006" nil)(EAITmsg "mb_mld12" " " "020" "\n")))
  250.                                ;Ungültige Eingabe: es werden min. EAITlmin mm je Multiblock benötigt!
  251.    )
  252.  
  253.    ;Schleife
  254.    (setq P1 (polar P1 WHb (- 75 L) )
  255.          nx nil )
  256.    (repeat n
  257.       (setq P1 (polar P1 WHb L))
  258.       (if (not nx)
  259.           (progn
  260.              (if (/= (cdr (assoc 2 (entget (car NL)))) nil) (command EAITurs P0) )
  261.              (setq nx 1)
  262.           )
  263.       )
  264.       (command EAITzom EAITzof  (mapcar '- P1 '(50 50 0)) (mapcar '+ P1 '(100 100 0)))
  265.      (if (/= (ssget (polar P1 WVb  3)) nil)
  266.             (command EAITbru (polar P1 WVb 3) EAITbre (polar (polar P1 WHb 10) WVb  3) (polar (polar P1 WHb -10) WVb  3))
  267.       )     
  268.      (if (/= (ssget (polar P1 WVb -3)) nil)
  269.             (command EAITbru (polar P1 WVb -3) EAITbre (polar (polar P1 WHb 10) WVb -3) (polar (polar P1 WHb -10) WVb -3))
  270.      )      
  271.       (command EAITzom EAITzov
  272.                EAITege GName P1 "" "" WHg
  273.                EAITege SName (polar P1 (+ WVb Pi) S) "" "" WHg
  274.       )
  275.       (command EAITege (strcat EAITpfn "EAITinfo") P1 "" "" ""
  276.                     EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  277.       )
  278.    )
  279.    (EAITvarz2)
  280.    (princ)
  281. );defun S1
  282.  
  283.  
  284.  
  285. (defun C:43966S2 ( / S GName SName NL P0 P1 P2 P3 P4 WV WH)
  286.    (EAITDBL "0043966")
  287.    (princ (strcat "\n\n" EAITbez1))
  288.    (EAITvari)
  289.    (EAITvars)
  290.    (setq S nil)
  291.    (while (not S)
  292.       (if (not kmblck)(setq kmblck 8))
  293.       (princ (strcat "\n" (EAITmg "mb_mld12" "022")" (0 - 8) <"))(princ kmblck)(princ "> : ")    ;Spannstaerke S (0 - 5) < kmblck >:
  294.       (initget 6)
  295.       (setq S (getreal))
  296.       (if (= S nil)(setq S kmblck) )
  297.       (cond ((<= S 4)(setq GName (strcat EAITpfn "43966s1") SName (strcat EAITpfn "43966_5") kmblck S S (+ S 8)))
  298.             ((<= S 8)(setq GName (strcat EAITpfn "43966s2") SName (strcat EAITpfn "43966_5") kmblck S S (+ S 4)))
  299.             (T       (setq S nil))
  300.       )
  301.    )
  302.  
  303.  
  304.    ;Lage
  305.    (setvar "ORTHOMODE" 0)
  306.    (setvar "OSMODE" 32)
  307.    (EAITmsg "mb_mld12" "\n\n " "014" nil)(EAITmsg "mb_mld10" " " "015" " : ")(princ "<")(princ EAITofsch)(princ "> ")
  308.                                          ; Punkt auf 1. Nutlinie (Return = relativ) : <SCH> 
  309.    (setq P1 (getpoint ))
  310.    (if (= P1 nil)(setq P1 (EAITrpt)))
  311.    (EAITmsg "mb_mld12" "\n " "016" " :")  ;2. Nutlinie:
  312.    (setq NL (entsel " ")
  313.          P0 (cadr NL))
  314.    (setvar "ORTHOMODE" 0)
  315.    (setvar "OSMODE" 0)
  316.    (setvar "APERTURE" 4)
  317.    (setq P2 (osnap P0 EAITofend)
  318.          P3 (osnap P0 EAITofmit)
  319.          WH (angle P2 P3)
  320.          WV (- WH (/ Pi 2))
  321.          P4 (inters P2 P3 P1 (polar P1 WV 3) nil)
  322.          P1  (mapcar '/ (mapcar '+ P4 P1) '(2 2 2))
  323.          WV  (angle P4 P1) 
  324.          WH  (+ WV (/ Pi 2))
  325.          WH  (EAITbig WH)
  326.          WV  (EAITbig WV) 
  327.    )
  328.  
  329.   (if (/= (cdr (assoc 2 (entget (car NL)))) nil) (command EAITurs P0) )
  330.   (command EAITzom EAITzof  (mapcar '- P1 '(50 50 0)) (mapcar '+ P1 '(100 100 0)))
  331.   (if (/= (ssget (polar P1 (EAITgib WV)  3)) nil)
  332.         (command EAITbru (polar P1 (EAITgib WV) 3) EAITbre (polar (polar P1 (EAITgib WH) 10) (EAITgib WV)  3) (polar (polar P1 (EAITgib WH) -10) (EAITgib WV)  3))
  333.   )
  334.   (if (/= (ssget (polar P1 (EAITgib WV) -3)) nil)
  335.         (command EAITbru (polar P1 (EAITgib WV) -3) EAITbre (polar (polar P1 (EAITgib WH) 10) (EAITgib WV) -3) (polar (polar P1 (EAITgib WH) -10) (EAITgib WV) -3))
  336.   )       
  337.   (command EAITzom EAITzov
  338.            EAITege GName P1 "" "" (- WV 90)
  339.            EAITege SName (polar P1 (EAITgib WV) S) "" "" (- WV 90) 
  340.   )
  341.   (command EAITege (strcat EAITpfn "EAITinfo") P1 "" "" ""
  342.                     EAITbez1 EAITbez2 EAITlie1 EAITlie2 EAITwer1 EAITwer2 (rtos EAITl1 2 1) (rtos EAITb1 2 1) EAITnr
  343.   )
  344.   (EAITvarz2)
  345.   (princ)
  346. );defun S2
  347.  
  348. (princ)
  349.